case sensitive
All keyword characters are upper case, and the language is case sensitive. Thus FOR is a
keyword while for , foR , For , FOr , FoR , fOr , fOR are seven valid independent symbols,
but not keywords. Thus the following is valid code, though no sane programmer would ever
write it.
FOR For = foR TO to STEP Step ' FOR, TO, STEP are
keywords
PRINT For, foR, to, Step ' For, foR, to, Step
are variables
NEXT For
' don't ever write code like this!
names and symbols
Names or Symbols are strings of one or more characters, beginning with an alphabetic
character and including all subsequent characters up to the first non-symbol character.
Characters that immediately follow symbols and constitute valid type-suffixes are
considered part of the symbol and determine its data type. Characters that immediately
precede symbols and constitute valid scope-prefixes are considered part of the symbol and
determine its scope.
type suffixes
The type suffixes that can be appended to variables to explicitly specify their data type
are:
@ | SBYTE | 8-bit signed byte integer |
@@ | UBYTE | 8-bit unsigned byte integer |
% | SSHORT | 16-bit signed short integer |
%% | USHORT | 16-bit unsigned short integer |
& | SLONG | 32-bit signed long integer |
&& | ULONG | 32-bit unsigned long integer |
~ | XLONG | 32/64-bit signed machine integer |
$$ | GIANT | 64-bit signed giant (financial) integer |
! | SINGLE | IEEE single precision floating point |
# | DOUBLE | IEEE double precision floating point |
$ | STRING | String of unsigned bytes |
scope prefixes
The scope prefixes that can be prepended to variables to explicitly specify their scope
are:
# | SHARED | variable shared within a program |
## | EXTERNAL | variable shared between multiple programs |
$ | Local Constant | constant visible within one function |
$$ | Shared Constant | constant visible throughout a program |
symbols
Most language elements are symbols. Language keywords symbols contain only upper-case
characters, never a lower case character. Symbols begin with an alphabetic character
followed by zero or more symbol characters, possibly terminated by a type-suffix or begun
by a prefix, both of which become part of the symbol. Local and shared constants are
symbols prefixed by $ and $$ , as in $PI and $$PIE .
Array names are always followed by square-brackets, though whitespace between the symbol and square brackets is permissible, so a$[j] and a$ [j] are equivalent. Function names are always followed by parentheses, though whitespace between the symbol and parentheses is permissible, so Func() and Func () are equivalent.